using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Personalplaner.Properties;
using Gencode.PrsCommon.Data.Abteilung;
using Gencode.PrsCommon.Data.Dienst;

namespace Personalplaner
{
    [ToolboxItem(false)]
	public partial class AddDienstToSchema : UserControl, Gencode.Gengui.Forms.IDialogControl
    {
        int schemaid;

		DataView m_abteilungen;

        public AddDienstToSchema(int schemaid)
        {
            InitializeComponent();
            this.schemaid = schemaid;
            SetData();
        }

        private void SetData()
        {
			m_abteilungen = AbteilungData.GetAbteilungen(Verwaltung.Mandant);
			comboAbteilung.DataSource = m_abteilungen;
			comboAbteilung.DisplayMember = "name";

			InitGrids();
        }

		private void InitGrids()
		{
			GridZugewiesen.InitData(schemaid, int.Parse(m_abteilungen[comboAbteilung.SelectedIndex].Row["abteilungid"].ToString()), true);
			GridDienste.InitData(schemaid, int.Parse(m_abteilungen[comboAbteilung.SelectedIndex].Row["abteilungid"].ToString()), false);
		}

        private void btnAdd_Click(object sender, EventArgs e)
        {
			if (GridDienste.SelectedRows[0].Index >= 0)
			{
				DataView dv = ((DataView)GridDienste.DataSource);
				DienstData.AddDienstToSchema(int.Parse(dv[GridDienste.SelectedRows[0].Index].Row["dienstid"].ToString()), schemaid, 
					int.Parse(m_abteilungen[comboAbteilung.SelectedIndex].Row["abteilungid"].ToString()), (int)numAnzahlEinsatz.Value);

				dv.Dispose();
				InitGrids();
			}
        }

        private void btnRemove_Click(object sender, EventArgs e)
        {
			if (GridZugewiesen.SelectedRows[0].Index >= 0)
			{
				DataView dv = ((DataView)GridZugewiesen.DataSource);
				DienstData.DeleteDienstFromSchema(int.Parse(dv[GridZugewiesen.SelectedRows[0].Index].Row["dienstid"].ToString()), schemaid,
					int.Parse(m_abteilungen[comboAbteilung.SelectedIndex].Row["abteilungid"].ToString()));

				dv.Dispose();
				InitGrids();
			}
        }

        private void comboAbteilung_SelectedIndexChanged(object sender, EventArgs e)
        {
			if (comboAbteilung.SelectedIndex >= 0)
			{
				InitGrids();
			}
        }

		#region IDialogControl Members

		public bool OKClicked()
		{
			return true;
		}

		public bool CancleClicked()
		{
			return true;
		}

		#endregion
	}
}